* lisp/net/dictionary.el: More fixes for dictionary-new-matching (bug#69312)
authorJuri Linkov <juri@linkov.net>
Tue, 5 Mar 2024 16:42:49 +0000 (18:42 +0200)
committerJuri Linkov <juri@linkov.net>
Tue, 5 Mar 2024 16:42:49 +0000 (18:42 +0200)
(dictionary-new-matching): Change the order of standard calls
to be the same as in 'dictionary-new-search'.
Use new function 'dictionary-new-matching-internal'.
(dictionary-new-matching-internal): New function based on
'dictionary-new-search-internal'.

lisp/net/dictionary.el

index 7967c6509991557574acf4666d8cc96787bfceec..d4dfa33716c2093a32f147c77dc1c16d1be2195f 100644 (file)
@@ -1116,17 +1116,22 @@ If PATTERN is omitted, it defaults to \"[ \\f\\t\\n\\r\\v]+\"."
 
 (defun dictionary-new-matching (word)
   "Run a new matching search on WORD."
-  (dictionary-ensure-buffer)
   (dictionary-store-positions)
-  (dictionary-pre-buffer)
-  (dictionary-do-matching word dictionary-default-dictionary
-                         dictionary-default-strategy
-                         'dictionary-display-match-result)
-  (dictionary-store-state 'dictionary-do-matching
+  (dictionary-ensure-buffer)
+  (dictionary-new-matching-internal word dictionary-default-dictionary
+                                    dictionary-default-strategy
+                                    'dictionary-display-match-result)
+  (dictionary-store-state 'dictionary-new-matching-internal
                          (list word dictionary-default-dictionary
                                dictionary-default-strategy
                                'dictionary-display-match-result)))
 
+(defun dictionary-new-matching-internal (word dictionary strategy function)
+  "Start a new matching for WORD in DICTIONARY after preparing the buffer.
+FUNCTION is the callback which is called for each search result."
+  (dictionary-pre-buffer)
+  (dictionary-do-matching word dictionary strategy function))
+
 (defun dictionary-do-matching (word dictionary strategy function)
   "Search for WORD with STRATEGY in DICTIONARY and display them with FUNCTION."
   (insert (format-message "Lookup matching words for `%s' in `%s' using `%s'\n"